﻿/*--------------------------------------------------------------------------------
 * Adaptive Intelligence - Foundation Framework Class Library
 * Version 2.00
 * 
 * ZIP Feature List Enumeration
 * 		Provides a list of required features associated with a required-version
 * number that indicate the implementation features required to operate on a specified
 * file.
 *------------------------------------------------------------------------------*/

/*--------------------------------------------------------------------------------
 * System Imports
 *------------------------------------------------------------------------------*/
using System;

namespace Adaptive.Foundation.IO.Zip
{
    /// <summary>
    /// Provides a list of required features associated with a required-version
    /// number that indicate the implementation features required to operate on a specified
    /// file.
    /// </summary>
    [Flags()]
    public enum ZipFeatureList
    {

        /// <summary>
        /// Indicates the default value.
        /// </summary>
        DefaultValue = 0,
        /// <summary>
        /// Indicates the file is a volume label
        /// </summary>
        VolumeLabel = 1,
        /// <summary>
        /// Indicates the file is a folder (directory).
        /// </summary>
        Folder = 2,
        /// <summary>
        /// Indicates the file is compressed using Deflate compression
        /// </summary>
        CompressedUsingDeflate = 4,
        /// <summary>
        /// Indicates the file is encrypted with traditional PKWARE encryption.
        /// </summary>
        EncryptedWithPkware = 8,
        /// <summary>
        /// Indicates the file is compressed using Deflate64(tm).
        /// </summary>
        CompressedWithDeflate64 = 16,
        /// <summary>
        /// Indicates the file is compressed using PKWARE DCL Implode.
        /// </summary>
        CompressedWithPkWareDclImplode = 32,
        /// <summary>
        /// Indicates the file is a patch data set.
        /// </summary>
        PatchDataSet = 64,
        /// <summary>
        /// Indicates the file uses ZIP64 format extensions.
        /// </summary>
        UsesZip64FormatExtensions = 128,
        /// <summary>
        /// Indicates the file is compressed using BZIP2 compression.
        /// </summary>
        CompressedUsingBZip2 = 256,
        /// <summary>
        /// Indicates the file is encrypted using the Digital Encryption Standard (DES).
        /// </summary>
        EncryptedWithDES = 512,
        /// <summary>
        /// Indicates the file is encrypted using the Triple-DES algorithm.
        /// </summary>
        EncryptedWithTripleDES = 1024,
        /// <summary>
        /// Indicates the file is encrypted using original RC2 encryption.
        /// </summary>
        EncryptedWithRC2 = 2048,
        /// <summary>
        /// Indicates the file is encrypted using RC4 encryption.
        /// </summary>
        EncryptedWithRC4 = 4096,
        /// <summary>
        /// Indicates the file is encrypted using Advanced Encryption Standard (AES) encryption.
        /// </summary>
        EncryptedWithAES = 8192,
        /// <summary>
        /// Indicates the file is encrypted using corrected RC2 encryption.
        /// </summary>
        EncryptedWithFixedRC2 = 16384,
        /// <summary>
        /// Indicates the file is encrypted using corrected RC2-64 encryption.
        /// </summary>
        EncryptedWithFixedRC264 = 32768,
        /// <summary>
        /// Indicates the file is encrypted using non-OAEP key wrapping.
        /// </summary>
        EncryptedWithNonOAEPWrapping = 65536,
        /// <summary>
        /// Indicates the central directory is encrypted.
        /// </summary>
        CentralDirectoryEncryption = 131072,
        /// <summary>
        /// Indicates the file is compressed using LZMA.
        /// </summary>
        CompressedWithLZMA = 262144,
        /// <summary>
        /// Indicates the file is compressed using PPMd+.
        /// </summary>
        CompressedWithPPMd = 524288,
        /// <summary>
        /// Indicates the file is encrypted using Blowfish.
        /// </summary>
        EncryptedWithBlowfish = 1048576,
        /// <summary>
        /// Indicates the file is encrypted using Twofish.
        /// </summary>
        EncryptedWithTwofish = 2097152

    }
}